/**
 * 本文件负责进行单位换算
 */

/**
 *
 * @param {*} value  字符串 单位大写 例如：10KB或者10K
 * @returns
 */
function sizeToByte(value) {
  let sizeValue = 0;
  if (value.includes("T")) {
    sizeValue =
      Number(value.slice(0, value.indexOf("T"))) * 1024 * 1024 * 1024 * 1024;
  } else if (value.includes("G")) {
    sizeValue = Number(value.slice(0, value.indexOf("G"))) * 1024 * 1024 * 1024;
  } else if (value.includes("M")) {
    sizeValue = Number(value.slice(0, value.indexOf("M"))) * 1024 * 1024;
  } else if (value.includes("K")) {
    sizeValue = Number(value.slice(0, value.indexOf("K"))) * 1024;
  } else {
    sizeValue = value;
  }
  return sizeValue;
}

/**
 *
 * @param {*} limit  数字 例如：1024
 * @returns 1KB
 */
function byteToSize(limit) {
  var size = "";
  if (limit < 0.1 * 1024) {
    //小于0.1KB，则转化成B
    size = limit.toFixed(2) + "B";
  } else if (limit < 0.1 * 1024 * 1024) {
    //小于0.1MB，则转化成KB
    size = (limit / 1024).toFixed(2) + "KB";
  } else if (limit < 0.1 * 1024 * 1024 * 1024) {
    //小于0.1GB，则转化成MB
    size = (limit / (1024 * 1024)).toFixed(2) + "MB";
  } else {
    //其他转化成GB
    size = (limit / (1024 * 1024 * 1024)).toFixed(2) + "GB";
  }

  var sizeStr = size + ""; //转成字符串
  var index = sizeStr.indexOf("."); //获取小数点处的索引
  var dou = sizeStr.substr(index + 1, 2); //获取小数点后两位的值
  if (dou == "00") {
    //判断后两位是否为00，如果是则删除00
    return sizeStr.substring(0, index) + sizeStr.substr(index + 3, 2);
  }
  return size;
}
module.exports = {
  sizeToByte,
  byteToSize,
};
